package com.ruoyi.system.pay.domain.po;

import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 支付订单实体类
 * 记录用户的支付订单信息，支持 支付宝、微信支付、银行卡 等支付方式。
 * 订单状态：未支付（UNPAID）、已支付（PAID）、已取消（CANCELLED）。
 * 支持事务控制：一旦状态变更，应确保数据库一致性。
 */
@Data
public class PayOrder {

    /**
     * 订单 ID（主键，自增）
     */
    private Long id;

    /**
     * 用户 ID（关联用户表）
     */
    private Long userId;

    /**
     * 订单编号（唯一）
     */
    private String orderNumber;

    /**
     * 支付交易流水号
     */
    private String transactionId;

    /**
     * 订单金额
     */
    private BigDecimal amount;

    /**
     * 支付方式（ALIPAY, WECHAT, BANK等）
     */
    private String payMethod;

    /**
     * 订单状态（UNPAID, PAID, CANCELLED）
     */
    private String status;

    /**
     * 支付时间
     */
    private Date paymentTime;

    /**
     * 订单创建时间
     */
    private Date createdAt;

    /**
     * 订单更新时间
     */
    private Date updatedAt;
}
